<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
		<!-- Page Info -->
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta name="description" content="Blogs.Oracle.Com - The road less taken">
  <meta name="keywords" content="blogs, oracle, blogs.oracle, blogging, bloggers">
		            <title>Blob vs file system storage (The road less taken)</title>
                           <meta http-equiv="Content-Language" content="en_US">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="imagetoolbar" content="no">

           <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blogs.oracle.com/manveen/rsd">
        
            <link rel="alternate" type="application/atom+xml" title="Recent Entries (Atom)" href="https://blogs.oracle.com/manveen/feed/entries/atom">
    <link rel="alternate" type="application/rss+xml" title="Recent Entries (RSS)" href="https://blogs.oracle.com/manveen/feed/entries/rss">
    <link rel="alternate" type="application/atom+xml" title="Recent Comments (Atom)" href="https://blogs.oracle.com/manveen/feed/comments/atom">
    <link rel="alternate" type="application/rss+xml" title="Recent Comments (RSS)" href="https://blogs.oracle.com/manveen/feed/comments/rss">

    
    
<!-- Stylesheets -->
<link rel="stylesheet" href="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/theme.css" type="text/css" media="screen">

<!-- Favicon -->
<link rel="shortcut icon" href="https://blogs.oracle.com/manveen/resource/oracle2col/favicon.gif">    	</head>
	<body>
		<div id="container" class="two-columns"> <!-- Note: Change the class from "two-columns" to "three-columns" if needed -->
			
			<!-- Header -->
			<div id="header">
				<ul id="nav">
					<li id="logo"><h6><a href="http://www.oracle.com/">Oracle</a></h6></li>
					<li class="current"><a href="https://blogs.oracle.com/">Blogs Home</a></li>
					<li><a href="http://www.oracle.com/us/products/index.html">Products &amp; Services</a></li>
					<li><a href="http://www.oracle.com/technetwork/indexes/downloads/index.html">Downloads</a></li>
					<li><a href="http://www.oracle.com/us/support/index.html">Support</a></li>
					<li><a href="http://www.oracle.com/us/partnerships/index.html">Partners</a></li>
					<li><a href="http://www.oracle.com/us/community/index.html">Communities</a></li>
					<li><a href="http://www.oracle.com/us/corporate/index.html">About</a></li>
                                            <li id="signIn"><a href="https://blogs.oracle.com/roller-ui/login-redirect.rol">Login</a></li>
                    				</ul>
				<div id="jumbotron">
					<h4>Oracle Blog</h4>
          <h5><a href="https://blogs.oracle.com/manveen/">The road less taken</a></h5>
          <h5 class="subhead">Manveen's Weblog</h5>
				</div>
                																										</div>
			
			<!-- Content -->
			<div id="content">
                <div id="mainColumn">
                    
                    <!-- Previous and Next Entries -->
                    <div id="pager">
                                                    « <a href="https://blogs.oracle.com/manveen/entry/boxing_and_unboxing">Boxing and unboxing</a> |  
                <a href="https://blogs.oracle.com/manveen/">Main</a>
                | <a href="https://blogs.oracle.com/manveen/entry/first_day_of_spring">First day of spring</a> »
                        </div>

                    <!-- Entries -->
				    
                <div class="day">


	<div class="entry" id="blob_vs_file_system_storage">

	<h3 class="entry-title">
			Blob vs file system storage
	    </h3>

    <h4 class="entry-meta">By manveen on <a href="#">Mar 19, 2008</a></h4>

    <div class="entry-body">
                                        	<p>
Images can be stored as a database blob or in the file system. How do 
you decide what to choose? What are the performance impacts of each one?
</p>
<p>
Well, there are several reasons why you should not store binary data in 
your database:
</p>
<p>
</p><ul>
<li> The whole point of storing data in a SQL database, is to put some kind 
of ordering and structure on your data, as well as being able to search on 
these data. But how do you search in the binary data of a picture?
</li>

<li> For large data sets, storing binary data will quickly run up the size of 
your database files, making it harder to control the size of the database. </li>

<li>In order to store binary data in the database, you must continually 
escape and unescape the data to ensure that nothing breaks. </li>

<li>Storing images on the file system has a marginally faster retrieval rate. </li>
</ul>
<p></p>

<p>
Now here are some reasons why you should:
</p>
<p>
</p><ul>
<li>There is one good reason why you might want to store the binary data
 in the 
database: Replication. Storing images in a database allows for all of 
your data to be central stored which is more portable, and easy to 
replicate.  </li>
</ul>
<p></p>
<p>
Here's one solution that takes into account the points above:
</p>
<p>
Store a link (e.g. a file path)  to the image file in the database. 
Whenever you need the image, use the link in whatever program you use to retrieve 
the file containing the image.
</p>
<p>
Or you could think of storing your images in the database to gain the 
benefits there (preferable for smaller images and for limited images), 
but also use file system caching of these to obtain the performance 
benefits.
</p>
<p>
Some tips for getting the best performance out of the file system:
</p>
<p>
</p><ul>
<li> Limit the number of images in any one directory. </li>
<li> Include not only an image identifier in the filename, but also a secret code. </li>
</ul>
<p></p>

        
    </div>

    <div class="entry-footer">
        <p class="entry-category">Category: General</p>
        <p class="entry-tags">Tags:    
    	    <a href="https://blogs.oracle.com/manveen/tags/blob" rel="tag">blob</a> 
  	    <a href="https://blogs.oracle.com/manveen/tags/database" rel="tag">database</a> 
    
 </p>
        <p class="entry-links">
        <a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage">Permanent link to this entry</a>
                        </p>
    </div>

	    
	</div>

</div>    
    
          
                    <!-- Previous and Next Entries -->
                    <div id="pagerBottom">
                                                    « <a href="https://blogs.oracle.com/manveen/entry/boxing_and_unboxing">Boxing and unboxing</a> |  
                <a href="https://blogs.oracle.com/manveen/">Main</a>
                | <a href="https://blogs.oracle.com/manveen/entry/first_day_of_spring">First day of spring</a> »
                        </div> 
                    
                    <!-- Comments -->
                                                <a name="comments"></a>
    <div class="comments" id="comments">

            <div class="comments-head">Comments:</div>
            
    <br>
                        <a name="comment-1206011076000" id="comment-1206011076000"></a>
            <div class="comment odd" id="comment1">

                
<p>Exactly!</p>


<p>We did that a 2 years ago with a virtual voucher that would hold many
 pdf files. We also created directory structures / file names soo we 
could rebuild the database or at least understand the storing if it was 
lost/damaged/or not needed anymore. That was done by generating files 
names and directorys with unix timestamps and other classification 
information. This is indeed the best of two worlds. And i can add that 
it also helps to have the files hosted on a separate file server then 
the database server. Leaves the server free for the real database stuff 
instead of feeding binary content.</p>



                <p class="comment-details">
                Posted by
                                    <a rel="nofollow" href="http://foubouda.org/"><b>IpNextGen</b></a>
                
                on March 20, 2008 at 04:04 AM PDT

                <a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage#comment-1206011076000" class="entrypermalink" title="comment permalink">#</a>
                </p>

            </div>

                                <a name="comment-1206011357000" id="comment-1206011357000"></a>
            <div class="comment even" id="comment2">

                
<p>Another benefit to the database approach is transactions.  If you're 
writing an image to a file system via NFS or FTP, and the server gets 
rebooted (for example) you won't get a chance to clean up the partially 
written file.  But if you're writing to a database when it gets 
rebooted, the database should automatically rollback the transaction 
that didn't complete.</p>



                <p class="comment-details">
                Posted by
                                    <b>Dean</b>
                
                on March 20, 2008 at 04:09 AM PDT

                <a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage#comment-1206011357000" class="entrypermalink" title="comment permalink">#</a>
                </p>

            </div>

                                <a name="comment-1206012030000" id="comment-1206012030000"></a>
            <div class="comment odd" id="comment3">

                
<p>Another plus for the DB is that you don't have to mess with server 
permissions as you would if you're were writing to a server share.  
Also, if you've got a proxy/load balancer storing on a file system would
 get messy very fast and is just generally not a very elegant or 
scalable approach IMO.</p>



                <p class="comment-details">
                Posted by
                                    <a rel="nofollow" href="http://geekswithblogs.net/Sanjayu"><b>Sanjay</b></a>
                
                on March 20, 2008 at 04:20 AM PDT

                <a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage#comment-1206012030000" class="entrypermalink" title="comment permalink">#</a>
                </p>

            </div>

                                <a name="comment-1206015812000" id="comment-1206015812000"></a>
            <div class="comment even" id="comment4">

                
<p>The benefit you mentioned, with reguards to replication, is mute.</p>


<p>Since the image is stored on the file system and not in the database,
 it is independent of the database completely. As long as the 
application has access to the file through a share or NAS, it will be 
able to retrieve the file regardless of which database server it is 
hitting in the cluster.</p>


<p>Furthermore having the image stored in the database will increase the size of the database causing replication to take long.</p>


<p>There only are no speed or replication benefits for storing images or binary data in a database.</p>



                <p class="comment-details">
                Posted by
                                    <a rel="nofollow" href="http://www.ripsdomain.com/"><b>tony petruzzi</b></a>
                
                on March 20, 2008 at 05:23 AM PDT

                <a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage#comment-1206015812000" class="entrypermalink" title="comment permalink">#</a>
                </p>

            </div>

                                <a name="comment-1206045640000" id="comment-1206045640000"></a>
            <div class="comment odd" id="comment5">

                
<p>I'm sorry...a secret code??  Ok, so I've added a column to my 
`images` table which encrypts "sorry for the inconvenience" in a 
randomized, 256 bit block cipher.  Now what?</p>


<p>Also, limiting the number of files per directory is only an 
optimization on Windows and certain outdated Linux file systems.  If 
you're using one of these for your "high performance" storage, you've 
got bigger problems than some academic distinction between files and 
BLOBs.</p>


<p>One of your reasons for not storing images in BLOBs is right on: DB 
bloat.  Once you open that can of worms, your database will get very 
unwieldy very fast.  Don't get me wrong, there are reasons to use BLOBs,
 but one must be very discriminating.</p>


<p>Oh, P.S.  If you're using JDBC, you shouldn't have to escape anything (hint: java.sql.PreparedStatement).</p>



                <p class="comment-details">
                Posted by
                                    <a rel="nofollow" href="http://www.codecommit.com/blog"><b>Daniel Spiewak</b></a>
                
                on March 20, 2008 at 01:40 PM PDT

                <a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage#comment-1206045640000" class="entrypermalink" title="comment permalink">#</a>
                </p>

            </div>

                                <a name="comment-1206060575000" id="comment-1206060575000"></a>
            <div class="comment even" id="comment6">

                
<p>but what if the db and the soft consuming it are not on the same physical system ?<br>
I am to store a lot bunch of binary data, but I can't decide how. If I 
store links, I will have to have a folder shared across all my services,
 so they access the same data, and the links are relevant.<br>
I fear I'd face to many issues. But if I store BLOB, the DB is likely to explode.</p>


<p>and so is my weak brain.</p>



                <p class="comment-details">
                Posted by
                                    <b>brice laurencin</b>
                
                on March 20, 2008 at 05:49 PM PDT

                <a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage#comment-1206060575000" class="entrypermalink" title="comment permalink">#</a>
                </p>

            </div>

                                <a name="comment-1206080650000" id="comment-1206080650000"></a>
            <div class="comment odd" id="comment7">

                
<p>Er, backup?</p>


<p>You will have to backup db and pictures. Furthermore, if you got a db
 and a replication db, you could be up (in case the server broke down) 
in minutes switching the db. If you use filesystem you would need a 
replicated db plus a replicated filesystem of the pictures.</p>


<p>Nevertheless, storing many pictures in the filesystem will have OS 
limitations. You need to split the load in more and more directories to 
guarantee that the system will not slow down (the "inode-problem").</p>


<p>And most db's do have special and faster treatment for BLOBs nowadays. I'd prefer to store all information in one place.</p>


<p>Just my 0,02$, Georgi</p>



                <p class="comment-details">
                Posted by
                                    <a rel="nofollow" href="http://goit-postal.blogspot.com/"><b>Georgi</b></a>
                
                on March 20, 2008 at 11:24 PM PDT

                <a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage#comment-1206080650000" class="entrypermalink" title="comment permalink">#</a>
                </p>

            </div>

                </div>
                        
    <div class="comments-form">
    <div class="comments-head">Post a Comment:</div>
    <a name="comment-form"></a>


    
    <form method="post" action="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage" focus="name" name="commentForm" onsubmit="fixURL(this); return validateComments(this)">    
        <input name="method" value="post" type="hidden">

        <ul>
            <li>
                <label class="desc">Name:</label>
                <input name="name" class="text large" value="guest" size="50" maxlength="255" type="text">
            </li>

            <li><label class="desc">E-Mail:</label>
                <input name="email" class="text large" size="50" maxlength="255" type="text">
            </li>

            <li><label class="desc">URL:</label>
                <input name="url" class="text large" size="50" maxlength="255" type="text">
            </li>

                    <li><input class="checkbox" id="notify" name="notify" type="checkbox">
                <label for="notify" class="choice">Notify me by email of new comments</label>
            </li>
                    <li>
                <input class="checkbox" id="rememberInfo" name="rememberInfo" type="checkbox">
                <label for="rememberInfo" class="choice">Remember Information?</label>
            </li>
            <li>
                <label class="desc">Your Comment:</label>
             
            <textarea name="content" class="textarea large" cols="40" rows="10"></textarea>

            </li>
            <li class="info">
                <span class="comments-syntax-indicator">
                HTML Syntax:
                                    <span class="disabled">NOT allowed</span>
                                </span>
            </li>
            <li class="info">
               <script type="text/javascript" src="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/clientSideInclude.htm"></script>
               <div id="commentAuthenticator"><p>Please answer this simple math question</p><p>8 + 15 = <input name="answer"></p>
</div>
            </li>
            <li>
               <input class="button" name="post" value="&nbsp;Preview&nbsp;" onclick="this.form.method.value='preview';this.form.submit()" type="button">
               <input class="button" name="post" value="&nbsp;Post&nbsp;" type="submit">
            </li>
        </ul>

    </form>

    <script type="text/javascript" src="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/roller.htm"></script>
    <script type="text/javascript">
    clientSideInclude('commentAuthenticator', '/CommentAuthenticatorServlet');

    var author = getCookie("commentAuthor");
    var email = getCookie("commentEmail");
    var url = getCookie("commentUrl");
    // check each field - IE will render "null"
   
    if (author) {
        document.forms['commentForm'].name.value = author;
    }else{
        document.forms['commentForm'].name.value = "guest";
    }

    if (email) {
        document.forms['commentForm'].email.value = email;
    }
    if (url) {
        document.forms['commentForm'].url.value = url;
    }

    if (author || email || url) {
        document.forms['commentForm'].rememberInfo.checked = true;
    }

    function fixURL(theForm) {
        if (theForm.url.value != "" &&
            theForm.url.value.indexOf("http://") == -1) { //prepend http://
            theForm.url.value = "http://"+theForm.url.value;
        }
        saveUserInformation(theForm);
    }

    function saveUserInformation(theForm) {
        if (theForm.rememberInfo.checked) {
            rememberUser(theForm);
        } else {
            forgetUser(theForm);
        }
    }

    function validateComments(theForm) {
        if (theForm.content.value == "") {
            alert("Please enter a comment.");
            theForm.content.focus();
            return false;
        }
 
        if (document.forms['commentForm'].name.value=="" ) {
        document.forms['commentForm'].name.value = "guest";
        }

    }
    </script>


    </div>
                    				</div>

                <!-- Sidebar -->
                           <!-- Right Sidebar -->
<div id="rightColumn">

<!-- About -->
  <div id="aboutSection">    
    <h5 class="section-title">About</h5>
    <div class="section-body">
                  <p>manveen</p>
            </div>
  </div>  
<!-- End About -->

<!-- Search -->
  <div id="searchSection">  
    <h5 class="section-title">Search</h5>
    <div class="section-body">
        <script type="text/javascript">
    function prepareSearchForm() {
        document.getElementById("searchForm").searchQuery.name = "oq";
        document.getElementById("searchFilter").innerHTML = "<input type='hidden' id='searchFilteredQuery' name='q' value=''>" +
                "<br /><input type='checkbox' id='searchScope' checked='true' /><label for='searchScope'>Search only this blog</label>";
    }
    function submitSearchForm() {
        var form = document.getElementById("searchForm");
        var query = form.searchQuery.value;
        var urlSearchOp = form.searchOp.value; //searchOp
        var urlGroup = form.searchGroup.value; //group
         
        if (query == null || query == "") {
            return false;
        }
        var filter = " weblog:manveen";
        var curUrl = window.location.href;
        if (form.searchScope.checked && form.searchQuery.value.indexOf(filter) == -1) {
            form.searchFilteredQuery.value = form.searchQuery.value + filter;
        }
        else {
            form.searchFilteredQuery.value = form.searchQuery.value;
        }

        						 form.action="https://search.oracle.com/search/search";
				
        window.location = form.action + "?search_p_main_operator=" + urlSearchOp + "&group=" + urlGroup +"&q=" + form.searchFilteredQuery.value;
        return false;
    }
</script>
<form id="searchForm" action="http://search.oracle.com/search/search" onsubmit="return submitSearchForm();" method="get">
    <input id="searchOp" name="search_p_main_operator" value="all" type="hidden">
    <input id="searchGroup" name="group" value="Blogs" type="hidden">
    <label for="searchQuery" title="Enter search term">Enter search term:</label>
    <br>
    <input id="searchQuery" name="oq" class="text" alt="Enter Search Term" type="text">
    <input class="input-image" id="searchSubmit" alt="Submit Search" title="Submit Search" src="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/search-button.gif" type="image">
    <span id="searchFilter"><input id="searchFilteredQuery" name="q" value="" type="hidden"><br><input id="searchScope" checked="checked" type="checkbox"><label for="searchScope">Search only this blog</label></span>
</form>
<script type="text/javascript">prepareSearchForm();</script>
    </div>
  </div>    
<!-- End Search -->

<!-- Recent Posts -->
  <div id="recentSection">  
                <h5 class="section-title">Recent Posts</h5>
        <div class="section-body">
            <ul>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/announcing_project_socialsite">Announcing Project Socialsite</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/first_day_of_spring">First day of spring</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage">Blob vs file system storage</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/boxing_and_unboxing">Boxing and unboxing</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/on_generics">On Generics</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/java_serialization">Java Serialization</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/final_keyword_in_java">Final keyword in Java</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/this_leap_year_hop_to">This leap year: hop to it!</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/jpa_query_with_wildcards">JPA Query with wildcards</a></li>
                                    <li><a href="https://blogs.oracle.com/manveen/entry/localizing_field_labels_in_struts">Localizing field labels in struts 2</a></li>
                            </ul>
        </div>
      </div>    
<!-- End Recent Posts -->


<!-- Top Tags -->
  <div id="tagsSection">  
            <h5 class="section-title">Top Tags</h5>
    <div class="tags section-body">
        <ul class="tag-cloud">
                    <li><a href="https://blogs.oracle.com/manveen/tags/adoption" title="1" class="weight-1">adoption</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/ajax" title="5" class="weight-3">ajax</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/ant" title="1" class="weight-1">ant</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/bihar" title="1" class="weight-1">bihar</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/blob" title="1" class="weight-1">blob</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/blog" title="3" class="weight-2">blog</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/blogs" title="1" class="weight-1">blogs</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/charity" title="1" class="weight-1">charity</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/climate" title="1" class="weight-1">climate</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/contest" title="1" class="weight-1">contest</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/css" title="1" class="weight-1">css</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/database" title="1" class="weight-1">database</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/debug" title="2" class="weight-1">debug</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/dilbert" title="1" class="weight-1">dilbert</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/eco" title="1" class="weight-1">eco</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/energy" title="1" class="weight-1">energy</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/engine" title="1" class="weight-1">engine</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/ethical" title="1" class="weight-1">ethical</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/fun" title="1" class="weight-1">fun</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/glassfish" title="19" class="weight-5">glassfish</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/globalwarming" title="1" class="weight-1">globalwarming</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/green" title="1" class="weight-1">green</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/gui" title="1" class="weight-1">gui</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/htmlunit" title="1" class="weight-1">htmlunit</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/java" title="8" class="weight-4">java</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/javaone" title="1" class="weight-1">javaone</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/jdbc" title="1" class="weight-1">jdbc</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/jersey" title="2" class="weight-1">jersey</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/jmaki" title="6" class="weight-3">jmaki</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/jpa" title="1" class="weight-1">jpa</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/jsftemplating" title="2" class="weight-1">jsftemplating</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/json" title="1" class="weight-1">json</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/jsr109" title="1" class="weight-1">jsr109</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/jsr311" title="1" class="weight-1">jsr311</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/jug" title="1" class="weight-1">jug</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/kids" title="2" class="weight-1">kids</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/ldap" title="1" class="weight-1">ldap</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/leap" title="1" class="weight-1">leap</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/netbeans" title="3" class="weight-2">netbeans</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/roller" title="3" class="weight-2">roller</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/screencast" title="2" class="weight-1">screencast</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/security" title="3" class="weight-2">security</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/social" title="3" class="weight-2">social</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/struts2" title="2" class="weight-1">struts2</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/updatecenter" title="7" class="weight-4">updatecenter</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/web2.0" title="5" class="weight-3">web2.0</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/webservices" title="4" class="weight-2">webservices</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/wsit" title="4" class="weight-2">wsit</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/wstrust" title="3" class="weight-2">wstrust</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/tags/xwss" title="5" class="weight-3">xwss</a></li>
                </ul>
    </div>
    </div>    
<!-- End Top Tags -->
    

<!-- Categories -->
  <div id="categoriesSection">
    <h5 class="section-title">Categories</h5>
    <div class="section-body">
                        <ul class="rCategory">
                                                                            <li><a href="https://blogs.oracle.com/manveen/category/General">General</a></li>
                                                                                                            <li><a href="https://blogs.oracle.com/manveen/category/Personal">Personal</a></li>
                                                                                                            <li><a href="https://blogs.oracle.com/manveen/category/Sun">Sun</a></li>
                                                                                                            <li><a href="https://blogs.oracle.com/manveen/category/Web+2.0">Web 2.0</a></li>
                                                                                                            <li><a href="https://blogs.oracle.com/manveen/category/Web+services">Web services</a></li>
                                                                            </ul>
        </div>
  </div>
<!-- End Categories -->


<!-- Archives -->
   <div id="archiveSection">
    <h5 class="section-title">Archives</h5>
    <div class="section-body">
        <table summary="Blog Archive Calendar" class="hCalendarTable" border="0" cellspacing="0"><tbody><tr><td colspan="7" class="hCalendarMonthYearRow" align="center"><a href="https://blogs.oracle.com/manveen/date/200805" title="Prev" class="hCalendarNavBar">«</a> December 2013</td></tr><tr><th class="hCalendarDayNameRow" align="center">Sun</th><th class="hCalendarDayNameRow" align="center">Mon</th><th class="hCalendarDayNameRow" align="center">Tue</th><th class="hCalendarDayNameRow" align="center">Wed</th><th class="hCalendarDayNameRow" align="center">Thu</th><th class="hCalendarDayNameRow" align="center">Fri</th><th class="hCalendarDayNameRow" align="center">Sat</th></tr><tr><td class="hCalendarDay"><div class="hCalendarDayTitle">1</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">2</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">3</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">4</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">5</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">6</div></td><td class="hCalendarDayCurrent"><div class="hCalendarDayTitle">7</div></td></tr><tr><td class="hCalendarDay"><div class="hCalendarDayTitle">8</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">9</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">10</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">11</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">12</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">13</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">14</div></td></tr><tr><td class="hCalendarDay"><div class="hCalendarDayTitle">15</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">16</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">17</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">18</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">19</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">20</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">21</div></td></tr><tr><td class="hCalendarDay"><div class="hCalendarDayTitle">22</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">23</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">24</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">25</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">26</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">27</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">28</div></td></tr><tr><td class="hCalendarDay"><div class="hCalendarDayTitle">29</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">30</div></td><td class="hCalendarDay"><div class="hCalendarDayTitle">31</div></td><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td></tr><tr><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td><td class="hCalendarDayNotInMonth">&nbsp;</td></tr><tr class="hCalendarNextPrev"><td colspan="7" align="center"><a href="https://blogs.oracle.com/manveen/" class="hCalendarNavBar">Today</a></td></tr></tbody></table>
    </div>
  </div>
<!-- End Archives -->

<!-- Bookmarks -->
   <div id="bookmarkSection">
                <h5 class="section-title">Bookmarks</h5>
        <div class="section-body">
            <ul class="rFolder">
                    <li class="rFolderItem">
                                <a href="http://blogs.sun.com/" title="$bookmark.description" class="rBookmark0">blogs.sun.com</a>
                </li>
            <li class="rFolderItem">
                                <a href="http://java.com/" title="$bookmark.description" class="rBookmark0">java.com</a>
                </li>
            <li class="rFolderItem">
                                <a href="http://java.net/" title="$bookmark.description" class="rBookmark0">java.net</a>
                </li>
            <li class="rFolderItem">
                                <a href="http://www.opensolaris.org/" title="$bookmark.description" class="rBookmark0">opensolaris.org</a>
                </li>
                    </ul>
        </div>
          </div>    
<!-- End Bookmarks -->

<!-- Blog and Author Menu -->
   <div id="menuSection">
    <h5 class="section-title">Menu</h5>
    <div class="section-body">
            <ul class="rNavigationBar">
        <li class="rNavItem">
            <a href="https://blogs.oracle.com/"><span>Blogs Home</span></a>
        </li>
        <li class="rNavItem">
            <a href="https://blogs.oracle.com/manveen/"><span>Weblog</span></a>
        </li>
                                                                        
                                                                        
                                        <li class="rNavItem">
                    <a href="https://blogs.oracle.com/roller-ui/login-redirect.rol"><span>Login</span></a>
                </li>
                        </ul>
            </div>
  </div>    
<!-- End Blog and Author Menu -->

    
<!-- Feeds -->
   <div id="feedsSection">   
    <h5 class="section-title">Feeds</h5>
    <div class="section-body">
        <b>RSS</b>
            <ul class="rFeeds">
    <li><a href="https://blogs.oracle.com/manveen/feed/entries/rss">All</a></li>
                        <li><a href="https://blogs.oracle.com/manveen/feed/entries/rss?cat=%2FGeneral">/General</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/feed/entries/rss?cat=%2FPersonal">/Personal</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/feed/entries/rss?cat=%2FSun">/Sun</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/feed/entries/rss?cat=%2FWeb+2.0">/Web 2.0</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/feed/entries/rss?cat=%2FWeb+services">/Web services</a></li>
        <li><a href="https://blogs.oracle.com/manveen/feed/comments/rss">Comments</a></li>
    </ul>
        <b>Atom</b>    
            <ul class="rFeeds">
    <li><a href="https://blogs.oracle.com/manveen/feed/entries/atom">All</a></li>
                        <li><a href="https://blogs.oracle.com/manveen/feed/entries/atom?cat=%2FGeneral">/General</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/feed/entries/atom?cat=%2FPersonal">/Personal</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/feed/entries/atom?cat=%2FSun">/Sun</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/feed/entries/atom?cat=%2FWeb+2.0">/Web 2.0</a></li>
                    <li><a href="https://blogs.oracle.com/manveen/feed/entries/atom?cat=%2FWeb+services">/Web services</a></li>
        <li><a href="https://blogs.oracle.com/manveen/feed/comments/atom">Comments</a></li>
    </ul>
    </div>
  </div>          
<!-- End Feeds -->    
    
</div>    			</div>

			<!-- Footer -->
			<div id="footer">
				<p>The views expressed on this blog are those of the author and do not necessarily reflect the views of Oracle. <a href="http://www.oracle.com/html/terms.html">Terms of Use</a> | <a href="http://www.oracle.com/html/privacy.html">Your Privacy Rights</a> | <span id="teconsent"><script src="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/notice" async="async" defer="defer"></script><script type="text/javascript" src="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/notice_002"></script>   <a style="cursor: pointer;" id="icon-id09599899970194556">Cookie Preferences</a></span>  </p>
			</div>
			<!-- Omniture Script --> 
<!-- Start SiteCatalyst code -->

<script language="JavaScript" src="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/ora_blogs.htm"></script><script type="text/javascript" src="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/ora_code_blogs.htm"></script><script type="text/javascript" src="Blob%20vs%20file%20system%20storage%20%28The%20road%20less%20taken%29_files/ora_code.htm"></script>

<!-- End SiteCatalyst code -->
		</div>
	
</body></html>